package main

import (
	"Golang/Projects/Chapter06/funcintidemo04/db" //谁先导入，先执行哪个的init
	"Golang/Projects/Chapter06/funcintidemo04/utils"

	"fmt"
)

//最终的执行结果是：
// db.go-->getVal()...
// db.go-->init()...
// utils.go-->getVal()...
// utils.go-->init()...
// main.go ->getVal()...
// n= 200
// n2= 200
// main.go ->init()...
// main()...

//会先输出main.go ->getVal()...
var num = getVal()

func main() {
	fmt.Println("main()...")
}

//init函数在main函数之前执行
func init() {
	var n = utils.Num2
	var n2 = db.Num2
	fmt.Println("n=", n)
	fmt.Println("n2=", n2)
	fmt.Println("main.go ->init()...")
}

//全局变量优先级高于init高于main
func getVal() int32 {
	fmt.Println("main.go ->getVal()...")
	return 1
}
